#include "widget.h"
#include "ui_widget.h"
#include <QPushButton>
#include <QDebug>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    QPushButton *button = new QPushButton(this);
    button->setText("按钮");
    button->move(200, 200);

//    connect(button, &QPushButton::clicked, this, [button, this](){ // 这里也可以用 [=] 来替代 [button, this]
//       qDebug() << "Lambda 被执行了";
//       button->move(300, 300);
//       this->move(200, 300);
//    });

    // 这里使用引用的话
    // 上面的 button 变量随着构造函数本身就释放了，再这里取 & 可能就是非法的了
    connect(button, &QPushButton::clicked, this, [&](){
       qDebug() << "Lambda 被执行了";
       button->move(300, 300);
       this->move(200, 300);
    });
}

Widget::~Widget()
{
    delete ui;
}

